var raiz_consulta = "/SISDAF-PNP/consultar-expediente";
var raiz_digitaliza = "/SISDAF-PNP/digitalizar";
var raiz_crear= "/SISDAF-PNP/crear-expediente";
var raiz = "/SISDAF-PNP";
var regExpedienteActual = null;
var localUsuario=null;
var regPersonaActual = null;

function crearExpedientePNP(){

    var frmCriterios = new Ext.Panel({
        bodyStyle: "background-color:#DFE8F6; border:0",
        autoLoad: raiz_crear+"/frmCriterios.jsp"
    });

    var dsExpedientes = new Ext.data.Store({
        url: raiz_consulta+"/obtener-expedientes-indices.jsp",
        autoDestroy: true,
        reader: new Ext.data.JsonReader({
            root: "expedientes",
            fields:[
                {name: "numeroExpediente"},
                {name: "nombreCompleto"},
                {name: "grado"},
                {name: "folios"},
                {name: "id"}
            ]
        })
    });
    dsExpedientes.on("load",function(store,records,options){
        if(records.length == 0){
             crearExpedienteEx();
        }else{
            Information("Error", "Ya existe un expediente para esta persona");
        }
    });

    var grdExpedientes = new Ext.grid.GridPanel({
        id: "grdExpedientes",
        store: dsExpedientes,
        height: 200,
        border: false,
        columns:[new Ext.grid.RowNumberer(),{
            header: "Nro. Exp.",
            dataIndex: "numeroExpediente",
            width: 100
        },{
            header: "Causante",
            dataIndex: "nombreCompleto",
            width: 400
        },{
            header: "Grado",
            dataIndex: "grado",
            width: 180
        },{
            header: "Nro. Imagenes Exp",
            dataIndex: "folios",
            width: 120
        }]

    });
    grdExpedientes.on("rowclick", function(grid,rowIndex,e){
        regExpedienteActual = dsExpedientes.getAt(rowIndex);
        obtenerDocumentosExpediente();
    });
  
    var win = new Ext.Window({
        title:'Creacion de Expedientes',
        closeAction:'destroy',
        width:900,
        height:200,
        x:0,
        y:0,
        shim:false,
        maximizable:false,
        resizable: false,
        animCollapse:false,
        items:[frmCriterios,grdExpedientes]

    });
    win.show();
}

function buscarPersonalExpediente() {
    
    regPersonaActual = null;
    var dsPersonal = new Ext.data.Store({
        url: raiz_digitaliza+"/obtener-personal.jsp",
        autoDestroy: true,
        reader: new Ext.data.JsonReader({
            root: "personas",
            fields:[
                {name: "id"},
                {name: "nombreCompleto"},
                {name: "cpers_codofin", type: "string"},
                {name: "cpers_nrocip", type: "string"},
                {name: "cpers_unidad", type: "string"},
                {name: "cpers_nrodni", type: "string"},
                {name: "cgrad_descripcion", type: "string"}
            ]
        })
    });

    var grdPersonal = new Ext.grid.GridPanel({
        id: "grdPersonal",
        store: dsPersonal,
        height: 300,
        border: true,
        plugins:[new Ext.ux.grid.Search({
            mode:'local',
            searchText: 'Filtrar sobre el resultado',
            iconCls:false,
            minLength:2,
            width: 350
        })],
        columns:[{
            header: "DNI",
            dataIndex: "cpers_nrodni",
            sortable:true,
            width: 80
        },{
            header: "Apellidos y Nombres",
            dataIndex: "nombreCompleto",
            width: 350
        },{
            header: "Nro CIP",
            dataIndex: "cpers_nrocip",
            sortable:true,
            width: 100
        },{
            header: "GRADO",
            dataIndex: "cgrad_descripcion",
            sortable:true,
            width: 150
        }],
        tbar:['']
    });

    grdPersonal.on("rowclick", function(grid,rowIndex,e){
        regPersonaActual = dsPersonal.getAt(rowIndex);
    });

    grdPersonal.on("rowdblclick", function(grid,rowIndex,e){
        seleccionarPersonaEx();
    });

    var frmBuscarPersonal = new Ext.Panel({
        bodyStyle: "background-color:#DFE8F6; border:0",
        autoLoad: "frmBuscarPersonal.html"
    });

    var pnlBuscarPersonal = new Ext.Panel({
        items:[frmBuscarPersonal,grdPersonal]
    });

    var win = new Ext.Window({
        id: "winBuscarPersonalEx",
        modal: true,
        title:'Buscar en Maestro Policial - MASPOL',
        closeAction:'destroy',
        width:700,
        height: 400,
        shim:false,
        maximizable:false,
        resizable: false,
        animCollapse:false,
        items:[pnlBuscarPersonal],
        bbar:[{
            text: "Seleccionar",
            iconCls:'icon-selector',
            handler: function(){
                seleccionarPersonaEx();
            }
        },'-',{
            text:'Cancelar',
            iconCls:'icon-cancel',
            handler: function(){
                var winBuscarPersonal = Ext.getCmp("winBuscarPersonalEx");
                winBuscarPersonal.destroy();
            }
        }]
    });
    win.show();
}

function seleccionarPersonaEx(){   
    var winBuscarPersonal = Ext.getCmp("winBuscarPersonalEx");
    if (regPersonaActual == null) {
        Information("Error", "Debe seleccionar una persona");
        return;
    }
    var form = document.getElementById("frmCriterios");
    var form_b = document.getElementById("frmBuscarAdministrado");
    var id = regPersonaActual.get("id");
    var nombre = regPersonaActual.get("nombreCompleto");
    var grado = regPersonaActual.get("cgrad_descripcion");
    form.nombre.value = nombre;
    form.grado.value = grado;
    form_b.grado.value = grado;
    winBuscarPersonal.destroy();
    var grdExpedientes = Ext.getCmp("grdExpedientes");
    var dsExpedientes = grdExpedientes.getStore();
    dsExpedientes.reload({
        params: {
            opcion: 4,
            criterio: id
        }
    });
}

function filtrarPersonalMaspolexp(){
    if ($("apellidoPaterno").value!="" || $("apellidoMaterno").value!="" || $("nombres").value !="" ){
        if ($("apellidoPaterno").value.length >= 3 || $("apellidoMaterno").value.length >= 3 || $("nombres").value.length >= 3 ){
            obtenerPersonalexp();
        }else{
            alert("Debe ingresar por lo menos 3 letras en algun criterio para realizar la busqueda");
        }
    }else{
        alert("Debe ingresar un criterio de busqueda");
    }
}

function obtenerPersonalexp() {
    var grdPersonal = Ext.getCmp("grdPersonal");
    var dsPersonal = grdPersonal.getStore();
    var form = document.getElementById("frmBuscarAdministrado");
    var apellidoPaterno = form.apellidoPaterno.value;
    var apellidoMaterno = form.apellidoMaterno.value;
    var nombres = form.nombres.value;
    dsPersonal.load({
        params: {
            apellidoPaterno: apellidoPaterno,
            apellidoMaterno: apellidoMaterno,
            nombres: nombres
        }
    });
}

function crearExpedienteEx() {
    if (regPersonaActual == null) {
        Information("Error", "Debe seleccionar una persona");
        return;
    }
    
    //Preguntar si es antiguo o nuevo
    Ext.MessageBox.buttonText.yes ="Nuevo (Creacion Automatica)";
    Ext.MessageBox.buttonText.no ="Antiguo (Creacion Manual)" ;
    Ext.Msg.show({
        title: "Antiguedad de Administrado",
        msg: "El administrado es nuevo o antiguo",
        buttons: Ext.Msg.YESNO,
        icon: Ext.Msg.QUESTION,
        fn: function(btn){
            if(btn == 'Nuevo' || btn == 'yes'){
                muestraAdministradoNuevo();
            }else{
                muestraAdministradoAntiguo();
            }
        }
    });

//     Ext.Msg.confirm('Antiguedad de Adminsitrado', 'El administrado es antiguo? desea ingresar el numero a mano?', function(btn){
//        if(btn == 'ok' || btn == 'yes'){
//            alert("asa");
////            muestraAdministradoAntiguo();
//        }else{
////            muestraAdministradoNuevo();
//        }
//     });
}

function muestraAdministradoAntiguo(){

var win = new Ext.Window({
        autoLoad: {
            url: raiz_digitaliza+"/frmCabeceraExpediente.html",
            callback: function(el,success,response,options){
                obtenerPersonalPolicialEx();
            }
        },
        id: "winBuscarPersonal",
        modal: true,
        title:'Creación de Expediente Digital - Administrado Antiguo',
        closeAction:'destroy',
        width:680,
        height:160,
        shim:false,
        maximizable:false,
        resizable: false,
        animCollapse:false,
        bbar:[{
                text: "Grabar",
                iconCls:'icon-save',
                handler: function(){
                    grabarExpedienteEx();
                }
            },"-",{
                text: "Cancelar",
                iconCls:'icon-cancel',
                handler: function(){
                    var w = Ext.getCmp("winBuscarPersonal");
                    w.destroy();
                }
            }
        ]
    });

    win.show();

}

function cargaNuevoNumero(tipooficial){
    ///obtener de la BD el nuevo numero y ponerlo en la caja de texto, nada mas
    new Ajax.Request(raiz_digitaliza+"/obtener-nuevo-expediente.jsp",{
        method: "post",
        parameters: {
            id: tipooficial
        },
        onSuccess: function(t){
            var data = t.responseText.evalJSON();
            if (data.id != 0){
                var numexpe = document.getElementById('numeroExpediente');
                numexpe.value = data.id ;
            }
        },
         onFailure: function(t){
            alert(t.responseText);
        }
    });
}

function muestraAdministradoNuevo(){
    var win = new Ext.Window({
        autoLoad: {
            url: raiz_digitaliza+"/frmCabeceraExpedienteN.html",
            callback: function(el,success,response,options){
                obtenerPersonalPolicialEx();
            }
        },
        id: "winBuscarPersonal",
        modal: true,
        title:'Creación de Expediente Digital - Administrado Nuevo',
        closeAction:'destroy',
        width:680,
        height:160,
        shim:false,
        maximizable:false,
        resizable: false,
        animCollapse:false,
        bbar:[{
                text: "Grabar",
                iconCls:'icon-save',
                handler: function(){
                    if (document.getElementById("cbtipoOficial").value!=""){
                        grabarExpedienteExNu();
                    }else{
                        alert("Debe seleccionar una categoria");
                    }
                }
            },"-",{
                text: "Cancelar",
                iconCls:'icon-cancel',
                handler: function(){
                    var w = Ext.getCmp("winBuscarPersonal");
                    w.destroy();
                }
            }
        ]
    });
    win.show();
    
}

function obtenerPersonalPolicialEx(){
    var form = document.getElementById("frmCabeceraExpediente");
    var formorigen = document.getElementById("frmCriterios");
    var id = regPersonaActual.get("id");
    form.nombreCompleto.value = regPersonaActual.get("nombreCompleto");
    form.grado.value = formorigen.grado.value;
    form.tipo.value = formorigen.tipo.value;
    new Ajax.Request(raiz_digitaliza+"/obtener-personal-policial.jsp",{
        method: "post",
        parameters: {
            id: id
        },
        onSuccess: function(t){
            var data = t.responseText.evalJSON();
            if (data.idPolicial != 0){
                var txtFechaBaja = Ext.getCmp("fechaBaja");
                txtFechaBaja.setValue(data.fechaBaja);
                form.idPolicial.value = data.idPolicial;
            }
        },
         onFailure: function(t){
            alert(t.responseText);
        }
    });
}

function grabarExpedienteEx(){
    cargarIdUsuario();
    var form = document.getElementById("frmCabeceraExpediente");
    var id = regPersonaActual.get("id");
    var idPolicial = form.idPolicial.value;
    var numeroExpediente = form.numeroExpediente.value;
    new Ajax.Request(raiz_digitaliza  + "/grabar-expediente.jsp",{
        method: "post",
        parameters: {
            id: id,
            idPolicial: idPolicial,
            numeroExpediente: numeroExpediente,
            usuario: localUsuario
        },
        onSuccess: function(t){
            var data = t.responseText.evalJSON();
            if (data.success) {
                var win = Ext.getCmp("winBuscarPersonal");
                win.destroy();
                var grdExpedientes = Ext.getCmp("grdExpedientes");
                var dsExpedientes = grdExpedientes.getStore();
                dsExpedientes.reload({
                    params: {
                         opcion: 4,
                         criterio: id
                    }
                });
            } else {
                Information("Error","Ya existe un expediente con este código");
            }
        },
        onFailure: function(t){
            alert(t.responseText);
        }
    });
}

function grabarExpedienteExNu(){
    cargarIdUsuario();
    var form = document.getElementById("frmCabeceraExpediente");
    var id = regPersonaActual.get("id");
    var idPolicial = form.idPolicial.value;
    var tipo = form.cbtipoOficial.value;
    var numeroExpediente = form.numeroExpediente.value;
    new Ajax.Request( raiz_digitaliza  + "/grabar-expedientenu.jsp",{
        method: "post",
        parameters: {
            id: id,
            tipo: tipo,
            idPolicial: idPolicial,
            numeroExpediente: numeroExpediente,
            usuario: localUsuario
        },
        onSuccess: function(t){
            var data = t.responseText.evalJSON();
            if (data.success) {
                var win = Ext.getCmp("winBuscarPersonal");
                win.destroy();
                var grdExpedientes = Ext.getCmp("grdExpedientes");
                var dsExpedientes = grdExpedientes.getStore();
                dsExpedientes.reload({
                    params: {
                         opcion: 4,
                         criterio: id
                    }
                });
            } else {
                Information("Error","Ya existe un expediente con este código");
            }
        },
        onFailure: function(t){
            alert(t.responseText);
        }
    });
}